---
title: Overriding TSCompiler Flags
---

import { Tabs, TabItem } from '@astrojs/starlight/components';

Using the `// @name` and `// @name: value` notations to override the [compiler options](https://twoslash.netlify.app/refs/options#compiler-options) for TypeScript language features and [handbook options](https://twoslash.netlify.app/refs/options#handbook-options) for TwoSlash. The notations will be removed from the output.

<Tabs>

<TabItem label="Output">

```ts twoslash
// @noImplicitAny: false
// @target: esnext
// @lib: esnext
// This suppose to throw an error,
// but it won't because we disabled noImplicitAny.
const fn = a => a + 1
```

</TabItem>

<TabItem label='Markdown'>

``````md

```ts twoslash
// @noImplicitAny: false
// @target: esnext
// @lib: esnext
// This suppose to throw an error,
// but it won't because we disabled noImplicitAny.
const fn = a => a + 1
```

``````

</TabItem>

</Tabs>

## Available Compiler Flags

```md
// @allowJs
Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files..
 
// @allowSyntheticDefaultImports
Allow 'import x from y' when a module doesn't have a default export..
 
// @allowUmdGlobalAccess
Allow accessing UMD globals from modules..
 
// @allowUnreachableCode
Disable error reporting for unreachable code..
 
// @allowUnusedLabels
Disable error reporting for unused labels..
 
// @alwaysStrict
Ensure 'use strict' is always emitted..
 
// @assumeChangesOnlyAffectDirectDependencies
Have recompiles in projects that use `incremental` and `watch` mode assume that changes within a file will only affect files directly depending on it..
 
// @baseUrl
Specify the base directory to resolve non-relative module names..
 
// @charset
No longer supported. In early versions, manually set the text encoding for reading files..
 
// @checkJs
Enable error reporting in type-checked JavaScript files..
 
// @composite
Enable constraints that allow a TypeScript project to be used with project references..
 
// @declaration
Generate .d.ts files from TypeScript and JavaScript files in your project..
 
// @declarationDir
Specify the output directory for generated declaration files..
 
// @declarationMap
Create sourcemaps for d.ts files..
 
// @diagnostics
Output compiler performance information after building..
 
// @disableReferencedProjectLoad
Reduce the number of projects loaded automatically by TypeScript..
 
// @disableSizeLimit
Remove the 20mb cap on total source code size for JavaScript files in the TypeScript language server..
 
// @disableSolutionSearching
Opt a project out of multi-project reference checking when editing..
 
// @disableSourceOfProjectReferenceRedirect
Disable preferring source files instead of declaration files when referencing composite projects.
 
// @downlevelIteration
Emit more compliant, but verbose and less performant JavaScript for iteration..
 
// @emitBOM
Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files..
 
// @emitDeclarationOnly
Only output d.ts files and not JavaScript files..
 
// @emitDecoratorMetadata
Emit design-type metadata for decorated declarations in source files..
 
// @esModuleInterop
Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility..
 
// @exactOptionalPropertyTypes
Interpret optional property types as written, rather than adding 'undefined'..
 
// @experimentalDecorators
Enable experimental support for TC39 stage 2 draft decorators..
 
// @explainFiles
Print files read during the compilation including why it was included..
 
// @extendedDiagnostics
Output more detailed compiler performance information after building..
 
// @forceConsistentCasingInFileNames
Ensure that casing is correct in imports..
 
// @generateCpuProfile
Emit a v8 CPU profile of the compiler run for debugging..
 
// @importHelpers
Allow importing helper functions from tslib once per project, instead of including them per-file..
 
// @importsNotUsedAsValues
Specify emit/checking behavior for imports that are only used for types.
 
// @incremental
Enable incremental compilation.
 
// @inlineSourceMap
Include sourcemap files inside the emitted JavaScript..
 
// @inlineSources
Include source code in the sourcemaps inside the emitted JavaScript..
 
// @isolatedModules
Ensure that each file can be safely transpiled without relying on other imports..
 
// @jsx
Specify what JSX code is generated..
 
// @jsxFactory
Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'.
 
// @jsxFragmentFactory
Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'..
 
// @jsxImportSource
Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.`.
 
// @keyofStringsOnly
Make keyof only return strings instead of string, numbers or symbols. Legacy option..
 
// @lib
Specify a set of bundled library declaration files that describe the target runtime environment..
 
// @listEmittedFiles
Print the names of emitted files after a compilation..
 
// @listFiles
Print all of the files read during the compilation..
 
// @mapRoot
Specify the location where debugger should locate map files instead of generated locations..
 
// @maxNodeModuleJsDepth
Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`..
 
// @module
Specify what module code is generated..
 
// @moduleResolution
Specify how TypeScript looks up a file from a given module specifier..
 
// @newLine
Set the newline character for emitting files..
 
// @noEmit
Disable emitting file from a compilation..
 
// @noEmitHelpers
Disable generating custom helper functions like `__extends` in compiled output..
 
// @noEmitOnError
Disable emitting files if any type checking errors are reported..
 
// @noErrorTruncation
Disable truncating types in error messages..
 
// @noFallthroughCasesInSwitch
Enable error reporting for fallthrough cases in switch statements..
 
// @noImplicitAny
Enable error reporting for expressions and declarations with an implied `any` type...
 
// @noImplicitOverride
Add `undefined` to a type when accessed using an index..
 
// @noImplicitReturns
Enable error reporting for codepaths that do not explicitly return in a function..
 
// @noImplicitThis
Enable error reporting when `this` is given the type `any`..
 
// @noImplicitUseStrict
Disable adding 'use strict' directives in emitted JavaScript files..
 
// @noLib
Disable including any library files, including the default lib.d.ts..
 
// @noPropertyAccessFromIndexSignature
Enforces using indexed accessors for keys declared using an indexed type.
 
// @noResolve
Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project..
 
// @noStrictGenericChecks
Disable strict checking of generic signatures in function types..
 
// @noUncheckedIndexedAccess
Include 'undefined' in index signature results.
 
// @noUnusedLocals
Enable error reporting when a local variables aren't read..
 
// @noUnusedParameters
Raise an error when a function parameter isn't read.
 
// @out
Deprecated setting. Use `outFile` instead..
 
// @outDir
Specify an output folder for all emitted files..
 
// @outFile
Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output..
 
// @paths
Specify a set of entries that re-map imports to additional lookup locations..
 
// @plugins
List of language service plugins..
 
// @preserveConstEnums
Disable erasing `const enum` declarations in generated code..
 
// @preserveSymlinks
Disable resolving symlinks to their realpath. This correlates to the same flag in node..
 
// @preserveWatchOutput
Disable wiping the console in watch mode.
 
// @pretty
Enable color and formatting in output to make compiler errors easier to read.
 
// @reactNamespace
Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit..
 
// @removeComments
Disable emitting comments..
 
// @resolveJsonModule
Enable importing .json files.
 
// @rootDir
Specify the root folder within your source files..
 
// @rootDirs
Allow multiple folders to be treated as one when resolving modules..
 
// @skipDefaultLibCheck
Skip type checking .d.ts files that are included with TypeScript..
 
// @skipLibCheck
Skip type checking all .d.ts files..
 
// @sourceMap
Create source map files for emitted JavaScript files..
 
// @sourceRoot
Specify the root path for debuggers to find the reference source code..
 
// @strict
Enable all strict type-checking options..
 
// @strictBindCallApply
Check that the arguments for `bind`, `call`, and `apply` methods match the original function..
 
// @strictFunctionTypes
When assigning functions, check to ensure parameters and the return values are subtype-compatible..
 
// @strictNullChecks
When type checking, take into account `null` and `undefined`..
 
// @strictPropertyInitialization
Check for class properties that are declared but not set in the constructor..
 
// @stripInternal
Disable emitting declarations that have `@internal` in their JSDoc comments..
 
// @suppressExcessPropertyErrors
Disable reporting of excess property errors during the creation of object literals..
 
// @suppressImplicitAnyIndexErrors
Suppress `noImplicitAny` errors when indexing objects that lack index signatures..
 
// @target
Set the JavaScript language version for emitted JavaScript and include compatible library declarations..
 
// @traceResolution
Log paths used during the `moduleResolution` process..
 
// @tsBuildInfoFile
Specify the folder for .tsbuildinfo incremental compilation files..
 
// @typeRoots
Specify multiple folders that act like `./node_modules/@types`..
 
// @types
Specify type package names to be included without being referenced in a source file..
 
// @useDefineForClassFields
Emit ECMAScript-standard-compliant class fields..
 
// @useUnknownInCatchVariables
Type catch clause variables as 'unknown' instead of 'any'..
```